]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
tools/create-toolbox: Add convenience script
authorFlorian Müllner <fmuellner@gnome.org>
Fri, 17 Mar 2023 00:07:56 +0000 (01:07 +0100)
committerMarge Bot <marge-bot@gnome.org>
Tue, 16 May 2023 18:20:42 +0000 (18:20 +0000)
The script is a thin wrapper around `toolbox create`, mainly to
avoid the tedious image names. In addition, it allows us to
ensure that the container includes a matching mutter version.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2713>

tools/toolbox/create-toolbox.sh [new file with mode: 0755]

diff --git a/tools/toolbox/create-toolbox.sh b/tools/toolbox/create-toolbox.sh
new file mode 100755 (executable)
index 0000000..9f098a1
--- /dev/null
@@ -0,0 +1,80 @@
+#!/bin/sh
+# vi: sw=2 ts=4
+
+set -e
+
+TOOLBOX_IMAGE=registry.gitlab.gnome.org/gnome/gnome-shell/toolbox
+DEFAULT_NAME=gnome-shell-devel
+
+usage() {
+  cat <<-EOF
+       Usage: $(basename $0) [OPTION…]
+
+       Create a toolbox for gnome-shell development
+
+       Options:
+         -n, --name=NAME         Create container as NAME instead of the
+                                 default "$DEFAULT_NAME"
+         -v, --version=VERSION   Create container for stable version VERSION
+                                 (like 44) instead of the main branch
+         -h, --help              Display this help
+
+       EOF
+}
+
+die() {
+  echo "$@" >&2
+  exit 1
+}
+
+toolbox_run() {
+  toolbox run --container $NAME "$@"
+}
+
+TEMP=$(getopt \
+  --name $(basename $0) \
+  --options 'n:v:h' \
+  --longoptions 'name:' \
+  --longoptions 'version:' \
+  --longoptions 'help' \
+  -- "$@")
+
+eval set -- "$TEMP"
+unset TEMP
+
+NAME=$DEFAULT_NAME
+
+while true; do
+  case "$1" in
+    -n|--name)
+      NAME="$2"
+      shift 2
+    ;;
+
+    -v|--version)
+      VERSION="$2"
+      shift 2
+    ;;
+
+    -h|--help)
+      usage
+      exit 0
+    ;;
+
+    --)
+      shift
+      break
+    ;;
+  esac
+done
+
+TAG=${VERSION:-main}
+
+if podman container exists $NAME; then
+  die "Container $NAME" already exists
+fi
+
+podman pull $TOOLBOX_IMAGE:$TAG
+
+toolbox create --image $TOOLBOX_IMAGE:$TAG $NAME
+toolbox_run update-mutter